Creating a relatively efficient indexing scheme can be especially difficult for television (TV) program search services because of overlap between the vast number of channel lineups (i.e. combinations of channels) offered by various providers. For example, currently in the United States, there are approximately 16,000 different TV channels that are included in approximately 55,000 channel lineups that have been created based on factors such as geographic location, regional preferences and available modes of delivery (e.g. cable, satellite, over-the-air). For example, a first lineup offered in New York by a cable provider may include 900 channels, and a second lineup offered in San Francisco by a satellite provider may include 750 channels. And despite being offered by different providers for different geographic locations, the first and second lineups may have 200 common channels.
A particular user may have access to tens, hundreds or even thousands of TV channels depending on the lineup selected by the user. When searching for a TV program, the user will typically only want search results for TV programs on channels the user actually has access to. Previously known methods of creating a search index applicable for TV program listings have flaws that are exacerbated by the enormous number of correlated lineups that need to be searched in order to service a query from a particular user. For example, indexing by channels or by TV programs results in computationally expensive search processes that are relatively inefficient, and consequently, are often slow even when executed by data centers or the like.